iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0

Python提供了強大的文件讀寫功能,通過內置的open()函數,你可以輕鬆地對文件進行讀取和寫入操作。Python支持各種文件類型,如文本文件和二進制文件。

壹、打開文件

Python使用open()函數來打開文件,並返回一個文件對象。基本語法如下:

file_object = open(file_name, mode)

其中:

  • file_name是文件的名稱或路徑。
  • mode是文件打開的模式,常用的模式如下:
    • 'r':讀取模式(默認)。如果文件不存在,則會報錯。
    • 'w':寫入模式。如果文件已存在,會覆蓋文件。如果文件不存在,則創建新文件。
    • 'a':追加模式。在文件末尾追加內容。如果文件不存在,則創建新文件。
    • 'b':二進制模式(與其他模式結合使用,如 'rb' 讀取二進制文件)。
    • 't':文本模式(默認,可省略)。

貳、文件讀取

Python 提供了多種方法來讀取文件內容。

一、read():讀取整個文件內容

# 打開文件並讀取其全部內容
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

二、readline():按行讀取文件

# 使用 readline() 方法按行讀取
with open('example.txt', 'r') as file:
    line = file.readline()
    while line:
        print(line.strip())  # 移除換行符號
        line = file.readline()

三、readlines():將所有行讀入列表

# 使用 readlines() 方法讀取所有行並返回列表
with open('example.txt', 'r') as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())  # 移除換行符號

參、文件寫入

使用'w'模式打開文件時,可以將內容寫入文件。如果文件已存在,會覆蓋文件。

一、write():寫入字符串到文件

# 打開文件並寫入內容
with open('example.txt', 'w') as file:
    file.write("Hello, World!\n")
    file.write("Python 文件寫入範例。\n")

二、writelines():將列表中的每個元素作為一行寫入文件

# 使用 writelines() 寫入多行
lines = ["第一行\n", "第二行\n", "第三行\n"]
with open('example.txt', 'w') as file:
    file.writelines(lines)

肆、追加寫入

使用'a'模式打開文件,可以在文件末尾追加內容,而不覆蓋原有內容。

# 追加內容到文件末尾
with open('example.txt', 'a') as file:
    file.write("這是追加的內容。\n")

伍、文件關閉

使用open()打開的文件需要在使用後關閉,否則可能會造成資源泄漏。你可以使用close()方法手動關閉文件:

file = open('example.txt', 'r')
# 執行文件操作
file.close()

然而,推薦的做法是使用with語句,這樣會自動處理文件的關閉,避免忘記close()文件。

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)
# 此處文件已自動關閉

陸、文件讀寫二進制數據

對於二進制文件(如圖片、音頻等),需要使用 'b' 模式來讀寫二進制數據。

一、讀取二進制文件:

# 以二進制模式打開並讀取文件
with open('image.jpg', 'rb') as file:
    binary_data = file.read()
    print(binary_data)

二、寫入二進制文件:

# 以二進制模式打開並寫入文件
with open('output_image.jpg', 'wb') as file:
    file.write(binary_data)

柒、文件指針(seek 和 tell)

一、seek(offset, whence):移動文件指針到指定位置。

  • offset:偏移量,表示要移動的字節數。
  • whence:起始位置,默認為0(文件開頭),可以是:
    • 0:文件開頭。
    • 1:當前指針位置。
    • 2:文件末尾。
# 移動文件指針到開頭,然後讀取文件
with open('example.txt', 'r') as file:
    file.seek(0)
    print(file.read())

tell():返回當前文件指針的位置。

# 獲取當前文件指針的位置
with open('example.txt', 'r') as file:
    print(file.tell())

捌、文件檢查與操作(os 模塊)

Python的os模塊提供了文件檢查與操作的功能,如創建、刪除文件或目錄,判斷文件是否存在等。

import os

# 檢查文件是否存在
if os.path.exists('example.txt'):
    print("文件存在")
else:
    print("文件不存在")

# 刪除文件
os.remove('example.txt')

上一篇
第11天:模塊與庫
下一篇
第13天:列表推導式
系列文
python30天入門學習13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言